﻿using WHC.Security.Entity;

namespace WHC.Security.Adapter
{
	public interface ISecurityManager
	{
		int AddFunction(string identity, FunctionInfo functionInfo);
		void AddFunctions(string identity, int roleID, int[] functionIDs);
		int AddOU(string identity, OUInfo ouInfo);
		void AddOUs(string identity, int roleID, int[] ouIDs);
		int AddRole(string identity, RoleInfo roleInfo);
		void AddUser(string identity, UserInfo userInfo);
		void AddUsersToOU(string identity, int ouID, string[] userNames);
		void AddUsersToRole(string identity, int roleID, string[] userNames);
		void DeleteFunction(string identity, int[] functionIDs);
		void DeleteOU(string identity, int[] ouIDs);
		void DeleteRole(string identity, string[] roleNames);
		void DeleteUser(string identity, string[] userNames);
		void RemoveFunctions(string identity, int roleID, int[] functionIDs);
		void RemoveOUs(string identity, int roleID, int[] ouIDs);
		void RemoveUsersFromOU(string identity, int ouID, string[] userNames);
		void RemoveUsersFromRole(string identity, int roleID, string[] userNames);
		void UpdateFunction(string identity, FunctionInfo functionInfo);
		void UpdateOU(string identity, OUInfo ouInfo);
		void UpdateRole(string identity, RoleInfo roleInfo);
		void UpdateUser(string identity, UserInfo userInfo);
	}
}